# --------------------------------------------检查响应状态码--------------------------------------------------------------
""""""
"""
要检查 HTTP 响应 的状态码，直接 通过 reponse对象的 status_code 属性获取
import requests

response = requests.get('http://mirrors.sohu.com/')
print(response.status_code)
运行结果发现返回的状态码就是 200
 
如果故意写一个不存在的地址
import requests

response = requests.get('http://mirrors.sohu.com/haaaaaaaaa')
print(response.status_code)
运行结果发现返回的状态码就是 404
"""
# --------------------------------------------检查响应消息头--------------------------------------------------------------
"""
要检查 HTTP 响应 的消息头，直接通过 response对象的 headers 属性获取
import requests,pprint

response = requests.get('http://mirrors.sohu.com/')
print(type(response.headers))
pprint.pprint(dict(response.headers))
运行结果如下

<class 'requests.structures.CaseInsensitiveDict'>
{'Cache-Control': 'no-store',
 'Connection': 'keep-alive',
 'Content-Type': 'text/html; charset=utf8',
 'Date': 'Sat, 21 Sep 2019 09:02:32 GMT',
 'Server': 'nginx',
 'Transfer-Encoding': 'chunked'}
response.headers 对象的类型是继承自 Dict 字典类型的一个类
我们也可以像操作字典一样操作它，比如取出一个元素的值

print(response.headers['Content-Type'])
"""
# --------------------------------------------检查响应消息体--------------------------------------------------------------
"""
前面我们已经说过，要获取响应的消息体的文本内容，直接通过response对象 的 text 属性即可获取
import requests

response = requests.get('http://mirrors.sohu.com/') 
print(response.text)
那么，requests是 以什么编码格式 把HTTP响应消息体中的字节串解码为字符串的呢？
requests 会根据响应消息头（比如 Content-Type）对编码格式做推测(可用print(response.encoding)看到其推测的格式)
但是有时候，服务端并不一定会在消息头中指定编码格式，这时， requests的推测可能有误，需要我们指定编码格式。
可以通过这样的方式指定
import requests

response = requests.get('http://mirrors.sohu.com/')
response.encoding='utf8'
print(response.text)

如果我们要直接获取消息体中的字节串内容，可以使用 content 属性，
比如
import requests

response = requests.get('http://mirrors.sohu.com/')
print(response.content)
当然，如果可以直接对获取的字节串 bytes对象进行解码
print(response.content.decode('utf8'))

API 响应的消息体格式，通常以json居多。
为了 方便处理 响应消息中json格式的数据 ，我们通常应该把 json 格式的字符串 转化为 python 中的数据对象
怎么转化？ 前面我们学习过json库，可以直接使用json库里面的 loads 函数，把json格式的字符串转化为数据对象

import requests,json
response = requests.post("http://httpbin.org/post", data={1:1,2:2})
obj = json.loads(response.content.decode('utf8'))
print(obj)
requests库为我们提供了更方便的方法，可以使用 Response对象的 json方法，
如下：

response = requests.post("http://httpbin.org/post", data={1:1,2:2})
obj = response.json()
print(obj)
"""